package com.tanhua.autoconfig;

import com.tanhua.autoconfig.properties.*;
import com.tanhua.autoconfig.templates.*;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;

//开启配置对象的使用
@EnableConfigurationProperties(
        value = {
                SmsProperties.class,
                OssProperties.class,
                AipFaceProperties.class,
                HuanXinProperties.class,
                GreenProperties.class
        }
)
public class TanhuaAutoConfiguration {
    //通过@Bean来配置

    /*
         自动装配四步骤
         1.创建一个对象，核心对象实现功能
         2.创建一个spring.factories
         3.自动读取配置文件当中的配置类的位置
         4.通过@Bean将对象架++++子到容器当中,以供调用
     */
    @Bean//发短信的对象
    public SmsTemplate smsTemplate() {
        return new SmsTemplate();
    }

    @Bean//上传图片的对象
    public OssTemplate ossTemplate() {
        return new OssTemplate();
    }

    @Bean//上传图片的对象
    public AipFaceTemplate aipFaceTemplate() {
        return new AipFaceTemplate();
    }

    @Bean//即时通信的对象
    public HuanXinTemplate huanXinTemplate(HuanXinProperties properties) {
        return new HuanXinTemplate(properties);
    }

    @Bean//动态内容审核的对象
    public AliyunGreenTemplate aliyunGreenTemplate(GreenProperties greenProperties) {
        return new AliyunGreenTemplate(greenProperties);
    }


}
